package cn.jacksigxu.min3halla.compat.kubejs.recipe;

import dev.latvian.mods.kubejs.item.InputItem;
import dev.latvian.mods.kubejs.item.OutputItem;
import dev.latvian.mods.kubejs.recipe.RecipeKey;
import dev.latvian.mods.kubejs.recipe.component.BooleanComponent;
import dev.latvian.mods.kubejs.recipe.component.ItemComponents;
import dev.latvian.mods.kubejs.recipe.component.NumberComponent;
import dev.latvian.mods.kubejs.recipe.schema.RecipeSchema;

public interface MixingRecipeSchema {

    RecipeKey<OutputItem> OUTPUT = ItemComponents.OUTPUT.key("output");
    RecipeKey<InputItem> DYE = ItemComponents.INPUT.key("dye").optional(InputItem.EMPTY);
    RecipeKey<InputItem> EXTRA = ItemComponents.INPUT.key("extra").optional(InputItem.EMPTY);

    RecipeKey<Integer> ADE = NumberComponent.intRange(0, 20).key("ade").optional(0);
    RecipeKey<Integer> BEX = NumberComponent.intRange(0, 20).key("bex").optional(0);
    RecipeKey<Integer> PWD = NumberComponent.intRange(0, 20).key("pwd").optional(0);
    RecipeKey<Integer> FLA = NumberComponent.intRange(0, 20).key("fla").optional(0);
    RecipeKey<Integer> KAR = NumberComponent.intRange(0, 20).key("kar").optional(0);

    RecipeKey<Boolean> ICE = BooleanComponent.BOOLEAN.key("ice").optional(false);
    RecipeKey<Boolean> AGE = BooleanComponent.BOOLEAN.key("age").optional(false);
    RecipeKey<Boolean> BIG = BooleanComponent.BOOLEAN.key("big").optional(false);
    RecipeKey<Boolean> BLEND = BooleanComponent.BOOLEAN.key("blend").optional(false);

    RecipeSchema SCHEMA = new RecipeSchema(OUTPUT, DYE, EXTRA, ADE, BEX, PWD, FLA, KAR, ICE, AGE, BIG, BLEND);
}
